package com.ruoyi.operationLog.domain;

import org.springframework.data.annotation.Id;
import org.springframework.data.elasticsearch.annotations.Document;
import org.springframework.data.elasticsearch.annotations.Field;
import org.springframework.data.elasticsearch.annotations.FieldType;

import java.util.Date;

@Document(indexName = "operation")
public class OperationLog {
    @Id // 对应ES中的_id字段
    private Long id;

    /**
     * 项目id
     */
    @Field(type = FieldType.Long) // 对应ES中的projectId字段，类型为长整型
    private Long projectId;

    /**
     * 实施单位
     */
    @Field(type = FieldType.Keyword, index = false) // 对应ES中的implementationUnit字段，类型为关键字，不需要被分词
    private String implementationUnit;

    /**
     * 操作人
     */
    @Field(type = FieldType.Keyword, index = false) // 对应ES中的creator字段，类型为关键字，不需要被分词
    private String createUser;

    /**
     * 操作时间
     */
    @Field(type = FieldType.Date) // 对应ES中的createTime字段，类型为日期
    private Date createTime;

    /**
     * 文件名
     */
    @Field(type = FieldType.Keyword, index = false) // 对应ES中的fileName字段，类型为关键字，不需要被分词
    private String fileName;

    /**
     * 文件地址
     */
    @Field(type = FieldType.Keyword, index = false) // 对应ES中的fileUrl字段，类型为关键字，不需要被分词
    private String fileUrl;

    /**
     *操作记录
     */
    @Field(type = FieldType.Keyword, index = false) // 对应ES中的operationRecord字段，类型为关键字，不需要被分词
    private String operationRecord;

    @Field(type = FieldType.Keyword, index = false) // 新增的阶段字段，类型为关键字，需要被分词
    private String stage;

    @Field(type = FieldType.Text, index = false) // 新增的备注字段，类型为文本，不需要被分词
    private String remark;


    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public Long getProjectId() {
        return projectId;
    }

    public void setProjectId(Long projectId) {
        this.projectId = projectId;
    }

    public String getStage() {
        return stage;
    }

    public void setStage(String stage) {
        this.stage = stage;
    }

    public String getRemark() {
        return remark;
    }

    public void setRemark(String remark) {
        this.remark = remark;
    }

    public String getImplementationUnit() {
        return implementationUnit;
    }

    public void setImplementationUnit(String implementationUnit) {
        this.implementationUnit = implementationUnit;
    }

    public String getCreateUser() {
        return createUser;
    }

    public void setCreateUser(String createUser) {
        this.createUser = createUser;
    }

    public Date getCreateTime() {
        return createTime;
    }

    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }

    public String getFileName() {
        return fileName;
    }

    public void setFileName(String fileName) {
        this.fileName = fileName;
    }

    public String getFileUrl() {
        return fileUrl;
    }

    public void setFileUrl(String fileUrl) {
        this.fileUrl = fileUrl;
    }

    public String getOperationRecord() {
        return operationRecord;
    }

    public void setOperationRecord(String operationRecord) {
        this.operationRecord = operationRecord;
    }
}
